// #include <stdio.h>
// #include <stdlib.h>
// #include <stdbool.h>
// #include <string.h>
// #include <Windows.h>
//
// #define MAXSIZE 200
//
// typedef struct SString {
//     char ch[MAXSIZE];
//     int length;
// } SString;
//
// // 初始化字符串
// void InitStr(SString* str) {
//     str->length = 0;
//     memset(str->ch, 0, MAXSIZE); // 清空字符数组
// }
//
// // 字符串赋值操作
// bool StrAssign(SString* str, const char* chars) {
//     if (str == NULL || chars == NULL) {
//         return false;
//     }
//
//     int len = strlen(chars);
//     if (len >= MAXSIZE) {
//         printf("错误：字符串长度超过最大值 %d\n", MAXSIZE);
//         return false;
//     }
//
//     // 复制字符到结构体
//     strncpy(str->ch, chars, len);
//     str->ch[len] = '\0'; // 确保以 '\0' 结尾
//     str->length = len;
//     return true;
// }
//
// // 打印字符串
// void PrintStr(const SString* str) {
//     if (str == NULL || str->length == 0) {
//         printf("字符串为空\n");
//         return;
//     }
//     printf("%s\n", str->ch);
// }
//
// int index(SString* S,SString* T) {
//     int i=1,j=1;
//     while (i<=S->length&&j<=T->length) {
//         if(S->ch[i]==T->ch[j]) {
//             ++i,++j;
//         }
//         else {
//             i=i-j+2;
//             j=1;
//         }
//     }
//     if(j>T->length) {
//         return i-T->length;
//     }else {
//         return 0;
//     }
// }
//
// int main() {
//     SString s;
//     SString t;
//     InitStr(&s);
//     InitStr(&t);
//     StrAssign(&s,"abaabaabc");
//     StrAssign(&t,"abaabc");
//     int result=index(&s,&t);
//     printf("下标结果:%d",result);
//     return 0;
// }